RAG Agent Portfolio - Documentación Técnica

Autor: Jesus Dones

Fecha: Enero 2025

Versión: 1.0.0

Resumen del Proyecto

Este proyecto implementa un RAG (Retrieval-Augmented Generation) Agent integrado en un portfolio web personal. El agente permite a los visitantes hacer preguntas sobre mi background, experiencia y proyectos, respondiendo en primera persona como si fuera yo mismo.

Stack Tecnológico

AWS Lambda AWS API Gateway AWS DynamoDB AWS S3 AWS CloudWatch AWS SSM Parameter Store Groq API Python 3.11 JavaScript HTML5/CSS3

Características Principales

Arquitectura del Sistema

Frontend

Backend

LLM Provider

Flujo de Datos

  1. Usuario escribe pregunta en el widget de chat
  2. Frontend envía POST request a API Gateway
  3. API Gateway valida CORS y aplica Rate Limiting
  4. Lambda Function valida el input (longitud, injection, spam)
  5. Lambda genera hash de la query y busca en DynamoDB cache
  6. Si hay cache hit: retorna respuesta inmediatamente
  7. Si hay cache miss:

Seguridad Implementada

Medida Implementación
CORS Orígenes permitidos específicos (portfolio.yamudev.com, localhost)
CSP Content Security Policy en HTML meta tag
Input Validation Validación de longitud, detección de prompt injection, sanitización HTML/JS, detección de spam
Rate Limiting API Gateway: 50 burst, 10 req/s
IAM Roles Políticas restrictivas (solo acceso necesario)
Secrets Management API Key almacenada en SSM Parameter Store (encriptado)

Optimizaciones

Caché DynamoDB

Cache en Memoria (Lambda)

Monitoreo

CloudWatch Dashboard con 4 widgets principales:

Costos Estimados

Servicio Uso Estimado Costo Mensual
Lambda 10,000 invocaciones $0.00 (Free Tier)
API Gateway 10,000 requests $0.00 (Free Tier)
S3 1 GB almacenamiento $0.023
DynamoDB 1 GB almacenamiento $0.00 (Free Tier)
CloudWatch Métricas estándar $0.00
Groq API 5,000 queries $0.00 - $1.35
TOTAL $0.00 - $1.50/mes

Despliegue

Prerrequisitos

Pasos Principales

  1. Procesar documentos localmente (PDF → JSON)
  2. Subir documents.json a S3
  3. Crear recursos AWS (Lambda, API Gateway, DynamoDB, etc.)
  4. Configurar seguridad (CORS, Rate Limiting, IAM)
  5. Configurar monitoreo (CloudWatch Dashboard)
  6. Desplegar frontend a S3

Mejoras Futuras